#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;


struct item{
	int time,value;
};




int main(){
	int t,m;
	cin>>t>>m;
	item a[m];
	int dp[m+1][t+1];
	memset(dp,0,sizeof(dp));
	for(int i=0;i<m;i++)
		cin>>a[i].time>>a[i].value;
	for(int i=1;i<=m;i++)
		for(int j=1;j<=t;j++)
			dp[i][j] = max(i-1>=0?dp[i-1][j]:0,j-a[i-1].time>=0?dp[i-1][j-a[i-1].time]+a[i-1].value:0);
	cout<<dp[m][t];
	cout<<endl; 
//	for(int i=0;i<m;i++){
//		for(int j=1;j<=t;j++)
//			cout<<dp[i][j]<<" ";
//		cout<<endl;
//	}
	return 0;
}
